package com.example.emb.service;

import com.example.emb.entity.Stuworktable;
import com.example.emb.entity.Worktable;
import com.example.emb.entity.pjo.WorkGroup;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface WorkService {
    /**
     * 和教师有关的操作
     * 作业要定时发布
     */
    //新建作业
    //应该有两步走，第一步读取，第二步是写入的。其实调用的接口是一样的，在前端做出区分就好了
    //不是写到baseMode里面去的，而是直接写到表里面的

    //teacher是根据教学班级创建作业的而不是行政班级
    String TeacherInitWork(Worktable worktable);

    //修改作业
    void updateWork(Worktable worktable);

    //修改基础的作业模板
    void changeBaseMode(String mode1);

    //删除作业
    void deleteWork(int workId) throws Exception;

    //批改作业有关的

    //作业是自动上交的，一般来说没有上交的都是连创建都没有创建的
    //展示所有上交的和未上交的
    List<WorkGroup> selectHandedWork(int workId);

    List<WorkGroup>  selectUnHandedWork(int workId);

    //查看上交的作业(查看具体的作业内容)
    Stuworktable getStuWorkDetail(int stuWorkId);
    //给出分数
    void giveScore(Double score,int StuworkId);
    //是否推送
    //todo还没想好具体怎么展示
    void isShowWork(int workId,String photo,String workName);

    //修改封面,需要controller配合的，photo的上传和其他的操作不在这里执行
    void updatePhoto(int showWorkId,String photoUrl);

    /**
     * 和学生有关联的操作
     * 在前面加上判断，是不是超时到期了
     */

    //根据时间排序
    //数据库设计的有问题啊
//    List<Worktable> getAllWorks(Long uuid,int workId);

    int InitWork(int workId,int groupId);

    //在controller中验证的时候，还需要groupId来判断是不是有权限加入
    void updateWork(int stuWorkId,String WorkDoc,int WorkId);

    //同理需要对权限加以判断
    String getWorkFile(int stuWorkId);

    /**
     * 定时操作，作业查重
     */
    //已经写好定时任务了

    /**
     * 展示的作业
     *修改封面
     */
//    //放到showWorkTable里面,有默认图片，或者上传图片
//    //准备删除
//    void InitShowWork(int stuWorkId,String WorkName,String photoUrl);


}
